package com.pan.admin.module.datareport.service;

import com.pan.admin.module.datareport.entity.AmountVO;
import com.pan.admin.module.datareport.entity.ApplyAndPushVO;
import com.pan.admin.module.datareport.entity.RechargeVO;
import com.pan.admin.module.datareport.entity.RevenueDataVO;
import com.pan.admin.module.datareport.entity.StartTimeAndEndTime;

import java.util.List;
import java.util.Map;

/**
 * 数据报表
 *
 * @author caoxin
 */
public interface DataReportService {

    /**
     * 进件量/推送量
     */
    List<ApplyAndPushVO> applyAndPush(StartTimeAndEndTime startTimeAndEndTime, List<Long> loanChannelId);

    /**
     * 主体计划城市分布情况
     */
    List<Map<String, Object>> planCityDistributionSituation(Boolean limit);

    /**
     * 主体余额情况
     */
    List<Map<String, Object>> loanProductBalanceSituation(Boolean desc);

    /**
     * 营收数据
     */
    List<RevenueDataVO> revenueData(StartTimeAndEndTime startTimeAndEndTime, List<Long> loanChannelId, List<Long> loanProductId);

    /**
     * 充值波动情况
     */
    List<RechargeVO> recharge(StartTimeAndEndTime startTimeAndEndTime, List<Long> loanProductId);

    /**
     * 消耗波动情况
     */
    List<AmountVO> amount(StartTimeAndEndTime startTimeAndEndTime, List<Long> loanProductId);

}
